package com.jsoft.service.impl;

import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.jsoft.entity.Enterprise;
import com.jsoft.entity.Industry;
import com.jsoft.dao.IndustryDao;
import com.jsoft.entity.PageBean;
import com.jsoft.service.IndustryService;
import org.springframework.stereotype.Service;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageImpl;
import org.springframework.data.domain.PageRequest;

import javax.annotation.Resource;
import java.util.List;

/**
 * (Industry)表服务实现类
 *
 * @author makejava
 * @since 2025-03-14 23:30:25
 */
@Service("industryService")
public class IndustryServiceImpl implements IndustryService {
    @Resource
    private IndustryDao industryDao;

    /**
     * 通过ID查询单条数据
     *
     * @param id 主键
     * @return 实例对象
     */
    @Override
    public Industry queryById(Integer id) {
        return this.industryDao.queryById(id);
    }

    /**
     * 分页查询
     *
     * @param industry 筛选条件
     * @param pageRequest      分页对象
     * @return 查询结果
     */
    @Override
    public Page<Industry> queryByPage(Industry industry, PageRequest pageRequest) {
        long total = this.industryDao.count(industry);
        return new PageImpl<>(this.industryDao.queryAllByLimit(industry, pageRequest), pageRequest, total);
    }

    /**
     * 新增数据
     *
     * @param industry 实例对象
     * @return 实例对象
     */
    @Override
    public Industry insert(Industry industry) {
        this.industryDao.insert(industry);
        return industry;
    }

    /**
     * 修改数据
     *
     * @param industry 实例对象
     * @return 实例对象
     */
    @Override
    public Industry update(Industry industry) {
        this.industryDao.update(industry);
        return this.queryById(industry.getId());
    }

    /**
     * 通过主键删除数据
     *
     * @param id 主键
     * @return 是否成功
     */
    @Override
    public boolean deleteById(Integer id) {
        return this.industryDao.deleteById(id) > 0;
    }

    /**
     * 根据id查询数据
     * @param pageNum
     * @param pageSize
     * @param id
     * @return
     */
    @Override
    public PageBean<Industry> queryIndustryById(Integer pageNum, Integer pageSize, Integer id) {
        // 使用 PageHelper 分页
        PageHelper.startPage(pageNum, pageSize);
        List<Industry> list = industryDao.queryId(id);

        // 将结果包装为 PageInfo
        PageInfo<Industry> pageInfo = new PageInfo<>(list);

        // 转换为自定义的 PageBean
        PageBean<Industry> pb = new PageBean<>();
        pb.setTotal(pageInfo.getTotal()); // 总记录数
        pb.setItems(pageInfo.getList());  // 当前页数据
        return pb;
    }

    @Override
    public List<Industry> queryall() {
       List<Industry> list =  industryDao.queryall();
       return list;
    }
}
